#include "struct.h"

/*****************************************
**  Nom : RASPAUD						**
**	Nom du fichier : return_card		**
**	Description : renvoi les 3 premières
	cartes du paquet					**
**										**
**										**
**	Date:	19/08/2014					**
**  Statut:Closed						**
*****************************************/

/*************************************************
**  Zone de déclaration des Fonctions PUBLIC    **
*************************************************/

/*************************************************************************
**  return_card                		    								**
**  Description de la fonction : renvoi les 3 premièrescartes du paquet	**
**																		**
**	Entrees : FIFO_PAQUET --> FIFO ciblée	
			  int --> tableau avec au moins 3 cases, qui contiendra les
			  		  valeurs des 3 dernières cartes					**
**																		**
**																		**
**	Sorties : int[3] -->
						 si -1=erreur et si 0=OK						**
**									                                    **
**				                                   					    **
**************************************************************************/
int return_card(FIFO_PAQUET *paquet, int valeur_cartes[])
{
	S_CARTE *courant;
	
	printf("return_card : Début fonction\n");
	if(paquet->carte_in!=NULL && paquet->carte_out!=NULL)
	{
		courant=paquet->carte_in;
		valeur_cartes[0]=courant->valeur; //sauvegarde de la 1ere carte
		if(courant->carte_suivante==NULL)
		{
			printf("return_card : il n'y avait qu'une seule carte dans le paquet\n");
			valeur_cartes[1]=0;
			valeur_cartes[2]=0;
			return 0;
		}
		else
		{
			courant=courant->carte_suivante;
			valeur_cartes[1]=courant->valeur; //sauvegarde de la 2eme carte
			if(courant->carte_suivante==NULL)
			{
				printf("return_card : il n'y avait que deux cartes dans le paquet\n");
				valeur_cartes[2]=0;
				return 0;
			}
			else
			{
				courant=courant->carte_suivante;
				valeur_cartes[2]=courant->valeur; //sauvegarde de la 3eme carte	
				printf("return_card : Toute les valeurs des cartes sont enregistrées\n");
				printf("return_card : Fin fonction\n");
				return 0;
			}
		}
	}
	if(paquet->carte_in==NULL || paquet->carte_out==NULL)
	{
		printf("return_card : Erreur la FIFO est vide !\n");
		return -1;
	}
	return -1;
}
